const Sequelize = require('sequelize');
const sequelize = require('../db');
const category = require('./Category');
const Article = sequelize.define(
    // 默认表名（一般这里写单数），生成时会自动转换成复数形式
    // 这个值还会作为访问模型相关的模型时的属性名，所以建议用小写形式
    'think_article',
    // 字段定义（主键、created_at、updated_at默认包含，不用特殊定义）
    {
        'id': {
            type: Sequelize.INTEGER(11), // 字段类型
            primaryKey: true,
            autoIncrement: true,
        },
        'title': {
            type: Sequelize.STRING(128), // 字段类
            allowNull: false,
            defaultValue: ''
        },
        'cate_id': {
            type: Sequelize.INTEGER, // 字段类型
            field: 'cate_id',
            allowNull: false,
            defaultValue: 0,
        },
        'photo': {
            type: Sequelize.STRING, // 字段类型
            allowNull: false,
            defaultValue: ''
        },
        'remark': {
            type: Sequelize.STRING, // 字段类型
            allowNull: false,
            defaultValue: ''
        },
        'keyword': {
            type: Sequelize.STRING, // 字段类型
            allowNull: false,
            defaultValue: ''
        },
        'content': {
            type: Sequelize.TEXT, // 字段类型
            allowNull: false,
            defaultValue: ''
        },
        'views': {
            type: Sequelize.INTEGER, // 字段类型
            allowNull: false,
            defaultValue: 1
        },
        'type': {
            type: Sequelize.INTEGER, // 字段类型
            allowNull: false,
            defaultValue: 1
        },
        'is_tui': {
            type: Sequelize.INTEGER, // 字段类型
            allowNull: false,
            defaultValue: 1
        },
        'from': {
            type: Sequelize.STRING, // 字段类型
            allowNull: false,
            defaultValue: ''
        },
        'ip': {
            type: Sequelize.STRING, // 字段类型
            allowNull: false,
            defaultValue: ''
        },
        'create_time': {
            type: Sequelize.INTEGER, // 字段类型
            allowNull: false,
            defaultValue: 0
        },
        'update_time': {
            type: Sequelize.INTEGER, // 字段类型
            allowNull: false,
            defaultValue: 0
        },
        'writer': {
            type: Sequelize.STRING, // 字段类型
            allowNull: false,
            defaultValue: '韩会强'
        },
        'status': {
            type: Sequelize.TINYINT, // 字段类型
            allowNull: false,
            defaultValue: 1
        },
        'like': {
            type: Sequelize.INTEGER, // 字段类型
            allowNull: false,
            defaultValue: 1
        },
        'comment_count': {
            type: Sequelize.INTEGER, // 字段类型
            allowNull: false,
            defaultValue: 1
        },
    },
    {
        // 禁用修改表名; 默认情况下，sequelize将自动将所有传递的模型名称（define的第一个参数）转换为复数。 如果你不想这样，请设置以下内容
        freezeTableName: true,
        timestamps: false,
        underscored: true,
        //createdAt:create_time,
        //updatedAt:update_time,
        //engine: 'MYISAM'
    }
);
Article.belongsTo(category, {foreignKey: 'cate_id', targetKey: 'id', as: 'category'});
module.exports = Article;
